Add AssignRouteAction to TrafficAction#898
Add AssignRouteAction to TrafficAction#898tbleher wants to merge 1 commit intoOpenSimulationInterface:masterfrom
Conversation
This makes it possible to forward OpenSCENARIO XML's AssignRouteAction to a traffic participant. Fixes OpenSimulationInterface#896. Signed-off-by: Thomas Bleher <thomas.tb.bleher@bmw.de>
PR #898: AssignRouteAction — Comprehensive Review & Analysis
1. Concepts: Trajectory, Path and RouteThree related but fundamentally different concepts exist in the OSI/OpenSCENARIO ecosystem 1.1 Comparison Table
1.2 Key structural insight: OSC has no separate "FollowPathAction"OpenSCENARIO uses a single
OSI splits this into two separate protobuf messages for clarity:
Implication for documentation: The existing OSI comments on both actions cite 1.3 Key behavioral insight: AssignRouteAction does NOT control motionPer This means:
2. OpenSCENARIO Route Model: Waypoints and RouteStrategy2.1 StructureAn OpenSCENARIO Each 2.2 RouteStrategy semantics: "from this waypoint to the next"The spec describes Consequence: The 2.3 Why 2 waypoints minimum?A route by definition connects points in the road network. With 1 waypoint, there is no However, this raises a design question: does the first waypoint represent the entity's
2.4 Route (abstract) vs Concrete Route (resolved)This distinction is central to the PR's resolving assumption:
Resolution is the process of converting abstract → concrete. It requires:
3. The OSC → OSI Boundary: What Gets ResolvedThe PR's
3.1 Resolution table
3.2 Architectural consequences
4. OSI RoutingAction Landscape After PR #898After merging, OSI will have three routing-related actions in
Critical distinction: AcquireGlobalPositionAction vs AssignRouteActionBoth involve "assigning a route," but at fundamentally different levels:
5. Review of PR #898: Issues and Recommendations5.1 What the PR adds (diff summary)// In osi_trafficcommand.proto:
import "osi_route.proto"; // new import
// In message TrafficAction:
optional AssignRouteAction assign_route_action = 13; // new field
// New nested message:
message AssignRouteAction
{
optional ActionHeader action_header = 1;
optional Route route = 2;
}5.2 Positive aspects
5.3 Issues and improvement recommendationsEach item below includes the current text, the problem, and a recommended fix Issue 1: Grammar errorCurrent text: Problem: English grammar requires "An" before vowel sounds. Recommended fix: Issue 2: Version reference inconsistencyCurrent text: Problem: All 12 existing OSI actions reference "OpenSCENARIO 1.0" (e.g., Recommended fix — option A (align): Recommended fix — option B (explain): Issue 3: The "resolving" assumption is under-specifiedCurrent text: Problem: The note correctly states that resolution is required but does not
Recommended fix: Issue 4: Missing non-MotionControlAction clarificationProblem: OpenSCENARIO explicitly states that Recommended addition: Issue 5: AcquireGlobalPositionAction documentation now ambiguousProblem: The existing
With the addition of an explicit
Recommended clarification (in existing Issue 6: Route.route_id must be setProblem: The OSI Recommended addition (in 6. Summary: Making Comments Precise and Avoiding MisapplicationThe core challenge is that the PR's current
Guiding principles for precise OSI documentation
|
This makes it possible to forward OpenSCENARIO XML's AssignRouteAction to a traffic participant.
Fixes #896.